<?php
class evento{
	private $id;
	private $id_empresa;
	private $id_tipo;
	private $id_genero;
	private $id_local;
	private $id_cidade;
	private $logradouro;
	private $numero;
	private $complemento;
	private $estado;
        private $cidade;
        private $bairro;
	private $CEP;
	private $latitude;
        private $longitude;
	private $dt_inicial;
        private $dt_final;
        private $dt_inicio;
        private $hr_inicio;
        private $dt_fim;
        private $hr_fim;
	private $titulo;
	private $descri;
	private $banner;
	private $status;

	public function __construct(){
		$this->id = NULL;
		$this->id_empresa = NULL;
		$this->id_tipo = NULL;
		$this->id_genero = NULL;
		$this->id_local = NULL;
		$this->id_cidade = NULL;
		$this->logradouro = NULL;
		$this->numero = NULL;
		$this->complemento = NULL;
		$this->estado = NULL;
                $this->cidade = NULL;
                $this->bairro = NULL;
		$this->CEP = NULL;
		$this->latitude = NULL;
                $this->longitude = NULL;
		$this->dt_inicial = NULL;
		$this->dt_final = NULL;
                $this->dt_inicio = NULL;
                $this->hr_inicio = NULL;
                $this->dt_fim = NULL;
                $this->hr_fim = NULL;
		$this->titulo = NULL;
		$this->descri = NULL;
		$this->banner = "sem-imagem.jpg";
		$this->status = NULL;
	}

	public function get_id(){
		return $this->id;
	}
	public function get_id_empresa(){
		return $this->id_empresa;
	}
	public function get_id_tipo(){
		return $this->id_tipo;
	}
	public function get_id_genero(){
		return $this->id_genero;
	}
	public function get_id_local(){
		return $this->id_local;
	}
	public function get_id_cidade(){
		return $this->id_cidade;
	}
	public function get_logradouro(){
		return $this->logradouro;
	}
	public function get_numero(){
		return $this->numero;
	}
	public function get_complemento(){
		return $this->complemento;
	}
	public function get_bairro(){
		return $this->bairro;
	}
        public function get_estado(){
		return $this->estado;
	}
        public function get_cidade(){
		return $this->cidade;
	}
	public function get_CEP(){
		return $this->CEP;
	}
	public function get_latitude(){
		return $this->latitude;
	}
        public function get_longitude(){
		return $this->longitude;
	}
	public function get_dt_inicial(){
		return data_ptbr($this->dt_inicial);
	}
	public function get_dt_final(){
		return data_ptbr($this->dt_final);
	}
        public function get_dt_inicio(){
		return data_ptbr($this->dt_inicio);
	}
        public function get_hr_inicio(){
		return $this->hr_inicio;
	}
        public function get_dt_fim(){
		return data_ptbr($this->dt_fim);
	}
        public function get_hr_fim(){
		return $this->hr_fim;
	}
	public function get_titulo(){
		return $this->titulo;
	}
	public function get_descri(){
		return $this->descri;
	}
	public function get_banner(){
		return $this->banner;
	}
	public function get_status(){
		return $this->status;
	}
        public function get_local(){
            if($this->id_local){
                $empresa = new empresa();
                $empresa->carregar_id($this->id_local);
                $endereco = $empresa->get_nome()." - ".$empresa->get_cidade()." - ".$empresa->get_estado();
                unset($empresa);
            }else{
                $endereco = $this->logradouro;
                if($this->numero){ $endereco .= ", ".$this->numero; }
                if($this->complemento){ $endereco .= ", ".$this->complemento; }
                if($this->bairro){ $endereco .= " - ".$this->bairro; }
                $endereco .= " - ".$this->cidade." - ".$this->estado;
            }
            
            return $endereco;
	}
        public function get_local_endereco(){
            if($this->id_local){
                $empresa = new empresa();
                $empresa->carregar_id($this->id_local);
                $endereco = $empresa->endereco();
                unset($empresa);
            }
            
            return $endereco;
	}
	
	
	public function set_id($id){
		if(valida::numero($id)){
                    $this->id = $id;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_id_empresa($id_empresa){
		if(valida::numero($id_empresa)){
                    $this->id_empresa = $id_empresa;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_id_tipo($id_tipo){
		if(valida::numero($id_tipo)){
                    $this->id_tipo = $id_tipo;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_id_genero($id_genero){
		if($id_genero == '' || valida::numero($id_genero)){
                    $this->id_genero = $id_genero;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_id_local($id_local){
		if($id_local == '' || valida::numero($id_local)){
                    $this->id_local = $id_local;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_id_cidade($id_cidade){
		if(valida::numero($id_cidade)){
                    $this->id_cidade = $id_cidade;
                    return 1;
		}else{
                    return 0;
                }
        }
        
        public function set_estado($estado){
                $estado = addslashes($estado);
                $this->estado = $estado;
                return 1;
	}
        
        public function set_cidade($cidade){
                $cidade = addslashes($cidade);
		$this->cidade = $cidade;
                return 1;
	}

	public function set_logradouro($logradouro){
		if(valida::endereco($logradouro)){
                    $this->logradouro = $logradouro;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_numero($numero){
		if($numero == '' || valida::numero($numero)){
                    $this->numero = $numero;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_complemento($complemento){
                $complemento = addslashes($complemento);
                $this->complemento = $complemento;
                return 1;
        }

	public function set_bairro($bairro){
                $bairro = addslashes($bairro);
                $this->bairro = $bairro;
                return 1;
        }

	public function set_CEP($CEP){
		if(valida::cep($CEP)){
                    $this->CEP = $CEP;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_latitude($latitude){
            if(valida::float($latitude)){
                $this->latitude = $latitude;
                return 1;
            }else{
                return 0;
            }
	}
        
        public function set_longitude($longitude){
            if(valida::float($longitude)){
                $this->longitude = $longitude;
                return 1;
            }else{
                return 0;
            }
	}

	public function set_dt_inicial($dt_inicial){
		if(valida::data_hora($dt_inicial)){
                    $this->dt_inicial = $dt_inicial;
                    
                    $ini = explode(" ", $this->dt_inicial);
                    $this->dt_inicio = $ini[0];
                    $this->hr_inicio = $ini[1];
                    
                    return 1;
		}else{
                    return 0;
                }
        }
        
	public function set_dt_final($dt_final){
		if($dt_final == '' || valida::data($dt_final)){
                    $this->dt_final = $dt_final;
                    
                    $fim = explode(" ", $this->dt_final);
                    $this->dt_fim = $fim[0];
                    $this->hr_fim = $fim[1];
                    
                    return 1;
		}else{
                    return 0;
                }
        }
        
        public function set_dt_inicio($data){
		if(valida::data($data)){
                    $this->dt_inicio = data_inter($data);
                    return 1;
		}else{
                    return 0;
                }
        }
        
        public function set_hr_inicio($hora){
                if(strlen($hora) == 5){
                    $hora += ":00";
                }
                
		if(valida::hora($hora)){
                    $this->hr_inicio = $hora;
                    return 1;
		}else{
                    return 0;
                }
        }

        public function set_dt_fim($data){
		if($data == '' || valida::data($data)){
                    $this->dt_fim = data_inter($data);
                    return 1;
		}else{
                    return 0;
                }
        }
        
        public function set_hr_fim($hora){
                if(strlen($hora) == 5){
                    $hora += ":00";
                }
                
		if($hora == '' || valida::hora($hora)){
                    $this->hr_fim = $hora;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_titulo($titulo){
                $titulo = addslashes($titulo);
		if($titulo != ''){
                    $this->titulo = $titulo;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_descri($descri){
                $descri = addslashes($descri);
                $this->descri = $descri;
                return 1;
        }

	public function set_banner($banner){
                $banner = addslashes($banner);
                $this->banner = $banner;
                return 1;
        }

	public function set_status($status){
		if(valida::numero($status)){
                    $this->status = $status;
                    return 1;
		}else{
                    return 0;
                }
        }

	
	
	public function salvar(){
            $db = new db(config::$driver);
            $con = $db->conecta();
            
            $this->dt_inicial = $this->dt_inicio." ".$this->hr_inicio;
            $this->dt_final = $this->dt_fim." ".$this->hr_fim;
            
            // atualiza local do evento
            if($this->id_local){
                $sql_local = "SELECT * FROM empresa WHERE id = '".$this->id_local."'";
                $res_local = $db->query($sql_local, $con);
                $local = $db->fetch_array($res_local);

                $this->id_cidade   = $local["id_cidade"];
                $this->logradouro  = $local["logradouro"];
                $this->numero      = $local["numero"];
                $this->complemento = $local["complemento"];
                $this->estado      = $local["uf"];
                $this->cidade      = $local["cidade"];
                $this->bairro      = $local["bairro"];
                $this->CEP         = $local["CEP"];
                $this->latitude    = $local["latitude"];
                $this->longitude   = $local["longitude"];
            }
            
            // atualiza cidade
            $sql_cid = "SELECT id FROM cidade WHERE nome = '".utf8_decode($this->cidade)."' AND UF = '".$this->estado."'";
            $res_cid = $db->query($sql_cid, $con);
            $cid = $db->fetch_array($res_cid);

            $this->id_cidade = $cid[0];

            if($this->id){
                $sql = "UPDATE evento SET id_empresa = '".$this->id_empresa."', id_tipo = '".$this->id_tipo."', id_genero = '".$this->id_genero."', id_local = '".$this->id_local."', id_cidade = '".$this->id_cidade."', logradouro = '".$this->logradouro."', numero = '".$this->numero."', complemento = '".$this->complemento."', bairro = '".$this->bairro."', CEP = '".$this->CEP."', latitude = '".$this->latitude."', longitude = '".$this->longitude."', dt_inicial = '".$this->dt_inicial."', dt_final = '".$this->dt_final."', titulo = '".$this->titulo."', descri = '".$this->descri."', banner = '".$this->banner."', status = '".$this->status."' WHERE id = '$this->id'";
            }else{       
		$sql = "INSERT INTO evento(id_empresa, id_tipo, id_genero, id_local, id_cidade, logradouro, numero, complemento, bairro, CEP, latitude, longitude, dt_inicial, dt_final, titulo, descri, banner, status) VALUES('".$this->id_empresa."', '".$this->id_tipo."', '".$this->id_genero."', '".$this->id_local."', '".$this->id_cidade."', '".$this->logradouro."', '".$this->numero."', '".$this->complemento."', '".$this->bairro."', '".$this->CEP."', '".$this->latitude."', '".$this->longitude."', '".$this->dt_inicial."', '".$this->dt_final."', '".$this->titulo."', '".$this->descri."', '".$this->banner."', '".$this->status."')";
            }
            
            $res = $db->query($sql, $con);
            $db->close($con);

            return $res;
	}
	public function carregar($id){
		$sql = "SELECT e.*, c.uf, c.nome AS cidade FROM evento e LEFT JOIN cidade c ON e.id_cidade = c.id WHERE e.id = $id";
                
		$db = new db(config::$driver);
 		$con = $db->conecta();
		$res = $db->query($sql, $con);
		$db->close($con);

		$evento = $db->fetch_array($res);

		$this->id = $evento["id"];
		$this->id_empresa = $evento["id_empresa"];
		$this->id_tipo = $evento["id_tipo"];
		$this->id_genero = $evento["id_genero"];
		$this->id_local = $evento["id_local"];
		$this->id_cidade = $evento["id_cidade"];
		$this->logradouro = $evento["logradouro"];
		$this->numero = $evento["numero"];
		$this->complemento = $evento["complemento"];
                $this->estado = $evento["uf"];
                $this->cidade = $evento["cidade"];
		$this->bairro = $evento["bairro"];
		$this->CEP = $evento["CEP"];
		$this->latitude = $evento["latitude"];
                $this->longitude = $evento["longitude"];
		$this->dt_inicial = $evento["dt_inicial"];
		$this->dt_final = $evento["dt_final"];
		$this->titulo = $evento["titulo"];
		$this->descri = $evento["descri"];
		$this->banner = $evento["banner"];
		$this->status = $evento["status"];
                
                $ini = explode(" ", $this->dt_inicial);
                $this->dt_inicio = $ini[0];
                $this->hr_inicio = $ini[1];
                
                $fim = explode(" ", $this->dt_final);
                $this->dt_fim = $fim[0];
                $this->hr_fim = $fim[1];
		
		return 1;
	}
        public function carregar_dados($evento){
		
		$this->id = $evento["id"];
		$this->id_empresa = $evento["id_empresa"];
		$this->id_tipo = $evento["id_tipo"];
		$this->id_genero = $evento["id_genero"];
		$this->id_local = $evento["id_local"];
		$this->id_cidade = $evento["id_cidade"];
		$this->logradouro = $evento["logradouro"];
		$this->numero = $evento["numero"];
		$this->complemento = $evento["complemento"];
                $this->estado = $evento["uf"];
                $this->cidade = $evento["cidade"];
		$this->bairro = $evento["bairro"];
		$this->CEP = $evento["CEP"];
		$this->coordenadas = $evento["coordenadas"];
		$this->dt_inicial = $evento["dt_inicial"];
		$this->dt_final = $evento["dt_final"];
		$this->titulo = $evento["titulo"];
		$this->descri = $evento["descri"];
		$this->banner = $evento["banner"];
		$this->status = $evento["status"];
                
                $ini = explode(" ", $this->dt_inicial);
                $this->dt_inicio = $ini[0];
                $this->hr_inicio = $ini[1];
                
                $fim = explode(" ", $this->dt_final);
                $this->dt_fim = $fim[0];
                $this->hr_fim = $fim[1];
		
		return 1;
	}
}